﻿using System;

namespace BizElements.BusinessLayer
{
    /// <summary>Enumerates options/hints flags that client code may pass to security providers.</summary>
    [Flags]
    [Serializable]
    public enum AccessFilterOptions : uint
    {
        /// <summary>Specifies no options/hints indicating that security provider should use its default implementation.</summary>
        None = 0x000,

        /// <summary>DISTINCT query with left outer joins to MDM views/tables should be created if supported by implementation.</summary>
        PreferDistinct = 0x0001,

        /// <summary>IN predicate with subquery that selects all allowed entity IDs should be created if supported by implementation.</summary>
        PreferInPredicateWithSubquery = 0x0002,

        /// <summary>EXISTS predicate with subquery that selects all allowed entity IDs should be created if supported by implementation.</summary>
        PreferExistsPredicateWithSubquery = 0x0004
    }
}
